#include<stdlib.h>
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<unistd.h>
#include <fcntl.h>
#include<sys/mman.h>

typedef struct{
    int integer;
    char string[24];
} RECORD;

#define NRECORDS (100)


int main(int argc,char **argv){

   RECORD record, *mapped;
   int i, f;
   FILE *fp;

   fp = fopen("records.dat","w+");

   for(i=0; i<NRECORDS; i++){
     record.integer = i;
     sprintf(record.string,"RECORE-%d ",i);
     fwrite(&record,sizeof(record),1,fp);
   }
    fclose(fp);

    //将43条记录中的整数43改为143，并写入到字符串中
    fp = fopen("records.dat","r+");
    fseek(fp,43*sizeof(record),SEEK_SET);
    fread(&record,sizeof(record),1,fp);
    record.integer = 143;
    sprintf(record.string,"RECORE-%d ",record.integer);
    fseek(fp,43*sizeof(record),SEEK_SET);
    fwrite(&record,sizeof(record),1,fp);
    fclose(fp);



   return 0;
}